from spider.base.filter import BaseFilter


class MemoryFilter(BaseFilter):
    """基于python中的集合数据结构进行去重判断依据的存储"""

    def _save(self, hash_value):
        """利用set进行存储"""
        return self.storage.add(hash_value)

    def _is_exists(self, hash_value):
        if hash_value in self.storage:
            return True
        return False

    def _get_storage(self):
        return set()


if __name__ == '__main__':
    f = MemoryFilter()

    data = ["simhash算法是一种局部敏感哈希算法，能实现相似文本内容的去重。比如以下两篇新闻数据", "qwe", "222", "333", "111", "qwe", "中文"]

    for d in data:
        if f.is_exists(d):
            print('发现重复的数据：', d)
        else:
            f.save(d)

    print(f.storage)